Các ứng dụng khác Trao đổi khóa Diffie-Hellman

Thỏa thuận khóa bằng xác thực mật khẩu

Để chia sẻ mật khẩu, Alice và Bob có thể sử dụng dạng trao đổi khóa bằng xác thực mật khẩu (PAKE) của giao thức Diffie–Hellman để đề phòng tấn công người đứng giữa. Một cách đơn giản là sử dụng phần tử sinh g làm mật khẩu. Đặc điểm của cách này là kẻ tấn công chỉ có thể thử một mật khẩu duy nhất trong mỗi lần tương tác với một bên, do đó hệ thống này có thể cung cấp khả năng bảo mật tốt ngay cả với một mật khẩu tương đối yếu. Giải pháp này được mô tả trong tiêu chuẩn X.1035 của ITU-T và được sử dụng trong chuẩn mạng máy tính trong nhà G.hn.

Khóa công khai

Người ta cũng có thể sử dụng Diffie–Hellman như là một phần của hạ tầng khóa công khai. Một cách đơn giản, khóa công khai của Alice được đặt là ( g a mod p , g , p ) {\displaystyle (g^{a}{\bmod {p}},g,p)} . Để gửi một thông điệp tới Alice, Bob chọn một số ngẫu nhiên b và gửi Alice g b mod p {\displaystyle g^{b}{\bmod {p}}} (không mã hóa) cùng với thông điệp được mã hóa với khóa đối xứng ( g a ) b mod p {\displaystyle (g^{a})^{b}{\bmod {p}}} . Chỉ có Alice mới có thể giải mã thông điệp vì chỉ có cô mới có khóa riêng tư a. Để chống tấn công người đứng giữa, người ta có thể sử dụng một khóa công khai được chia sẻ trước.

Trong thực tế, Diffie–Hellman không được sử dụng theo cách này vì thực ra RSA là thuật toán mã hóa khóa công khai được dùng phổ biến nhất. Lý do chính là do yếu tố lịch sử và thương mại, cụ thể là công ty bảo mật RSA tạo nên nhà cung cấp chứng thực số dùng cho chữ ký số, sau này trở thành Verisign. Diffie–Hellman không thể dùng để ký chứng thực. Tuy nhiên, thuật toán ElGamalDSA có mối liên hệ toán học với chữ ký số, cũng như là MQV, STS và thành phần IKE của bộ giao thức IPsec dùng để đảm bảo an toàn thông tin cho giao thức Internet.

Tài liệu tham khảo

WikiPedia: Trao đổi khóa Diffie-Hellman http://www.cacr.math.uwaterloo.ca/hac/ http://cryptocellar.web.cern.ch/cryptocellar/cesg/... http://cryptocellar.web.cern.ch/cryptocellar/cesg/... http://code.google.com/p/sacct/ http://docs.google.com/viewer?a=v&pid=sites&srcid=... http://video.google.com/videoplay?docid=8991737124... http://www.google.com/patents?vid=4.2 http://www.google.com/patents?vid=4200770 http://www.jya.com/ellisdoc.htm http://www.rsasecurity.com/rsalabs/node.asp?id=230...